Mode activated scrolling

ABSTRACT

A computer implemented method for changing between a cursor control mode and a scroll control mode. The cursor control mode allowing a user to move a cursor on a graphical user interface (GUI) and the scroll control mode allowing a user to scroll on the GUI. The cursor and scroll movements are based on positional data supplied by an input device such as a mouse.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority fromco-pending U.S. patent application Ser. No. 10/272,714, filed Oct. 16,2002 and entitled, “MODE ACTIVATED SCROLLING,” which claims priority toU.S. Provisional Patent Application No. 60/400,861, filed on Aug. 1,2002 and entitled “MODE ACTIVATED SCROLLING,” both of which areincorporated herein by reference.

TECHNICAL FIELD

The present invention relates generally to a computer system. Moreparticularly, the present invention relates to switching between modesof the computer system, as for example, a cursor control mode and ascroll control mode.

BACKGROUND

Graphical user interfaces have been around for some time. Graphical userinterfaces are generally defined as a computer environment or programthat displays, or facilitates the display of, text, graphics and onscreen options to a user. By way of example, text or graphics may bedisplayed in a window, and on screen options may take the form of imagesthat initiate tasks when selected. By way of example, the on screenoptions may include icons or tool bar items such as File, Edit, Window,Help, etc. In toolbar items, a first mouse click typically opens a pulldown menu, and a second mouse click either makes a menu selection orcloses the pull down menu. In order to make a menu selection, the usertypically positions a cursor over the desired menu item with the mouse(or other related device), and then performs a clicking action with thebutton of the mouse (or other related device). The cursor may take theform of a highlight bar when moved over a menu item. The highlight bargenerally indicates that a subsequent clicking action will initiatetasks associated with this particular menu item.

The graphical user interface (GUI) may also include a scroll bar forscrolling through the window. The scroll bar is typically located aroundthe periphery of the window inside a window frame. There may be avertical scroll bar for vertical scrolling and a horizontal bar forhorizontal scrolling. In either case, the scroll bar typically includesa scroll tab that moves linearly within the scroll bar to actuate thescrolling function. Movement of the scroll tab causes scrolling of thecontents in the window, as for example lines of text or graphicalimages. In order to move the scroll tab, a user must first position acursor or pointer over the scroll tab with a mouse. The user must thenselect the tab by performing a clicking action with the button of themouse. Once the scroll tab has been selected, the user can move thescroll tab within the scroll bar by continuously holding down the buttonand moving the mouse along a surface (e.g., hold and drag). For example,the mouse may be moved forwards and backwards to implement up and downor vertical scrolling.

This method of scrolling is not very ergonomic, i.e., hand fatigue andother hand related problems (e.g., carpal tunnel syndrome) may beincurred by the user when the button is continuously held down to dragthe scroll tab from one point to another point. This is particular truewhen scrolling through large amounts of data as for example internetdocuments, word processing and spreadsheet documents, computer codedocuments, graphical documents (CAD), etc.

Alternatively, the scroll tab may be moved by selecting the open spaceof scroll bar on either side of the scroll tab or by selecting a scrollarrow that moves the scroll tab in the direction of the arrow. Usingthese techniques, the tab may be incrementally moved by making multipleselections with the button or continuously moved by holding down thebutton of the mouse. Incremental movements are typically only performedto do block scrolling, i.e., scrolling through large sections of data(e.g., paragraphs). Both incremental and continuous movement suffer fromthe same drawbacks as mentioned above, i.e., not very ergonomic.

In recent years, scrolling through a window on a graphical userinterface has been implemented with a scroll wheel located on the mouse.The scroll wheel allows a user to vertically scroll through documents byrolling the wheel forward or backward-instead of selecting the scrollbar displayed on the GUI. The mouse may also provide a dedicated buttonthat changes the mouse from a cursor control device to a scroll controldevice where moving the mouse forwards and backwards initiates verticalscrolling via the vertical scroll bar instead of moving the cursor.Scrolling in this manner may allow a user to scroll without having tocontinuously hold down the primary button of the mouse or tocontinuously run a finger over a wheel. Furthermore, the vertical scrollbar may change its shape and color when scrolling in this manner. Forexample, it may change from a gray tab to a black arrow. Unfortunately,however, a special mouse having special wheels and/or buttons must beprovided. As such, a user that owns a conventional mouse cannot scrollin this manner. Furthermore, each of these items adds complexity andcost to the mouse.

Scrolling has also been implemented with a touch pad using a one and ahalf click method, i.e., tap and tap and hold. The tap and holdinitiates a drag lock enabling the user to scroll by moving their fingerabout the touch pad. This is sometimes called “gesturing.” This method,however, suffers from the same drawbacks as mentioned above. Forexample, it is not very ergonomic and other types of input devicescannot scroll in this manner (e.g., a conventional mouse). Furthermore,this method provides no visual feedback as to which state the touch padis in, and its not very intuitive, i.e., its very confusing to use.

In view of the foregoing, an improved scrolling technique that isergonomic (e.g., allows the mouse to scroll through a window withoutholding down a button), that is available to all users regardless of theinput device (e.g., does not need a dedicated button) and/or thatprovides visual stimulus indicating that scrolling is initiated isdesired.

SUMMARY

The invention relates, in one embodiment, to a method of implementingmode activated scrolling in a computer system having a display fordisplaying a graphical user interface (GUI), an input device forsupplying position data associated with controlling cursor or scrollmovements on the GUI and a command generator for supplying command dataassociated with executing tasks on the GUI. The system provides a cursorcontrol mode for allowing movements of a cursor to be controlled on theGUI via the input device and a scroll control mode for allowingscrolling to be controlled on the GUI via the input device. The methodincludes determining a location of the cursor on the GUI during thecursor control mode. The method also includes determining a status ofthe command generator during the cursor control mode. The method furtherincludes switching from the cursor control mode to the scroll controlmode when the cursor is positioned over an onscreen option of the GUIand when the command generator is activated.

The invention relates, in another embodiment, to a method of switchingbetween movement modes in a computer system having a display fordisplaying a graphical user interface (GUI), an input device forsupplying position data associated with controlling cursor or scrollmovements on the GUI and a command generator for supplying command dataassociated with executing tasks on the GUI. The method includesmonitoring position data so as to implement a cursor event or a scrollevent. The cursor event is associated with moving a cursor and thescroll event is associated with moving a scroll tab. The method alsoincludes monitoring command data so as to implement selection events.The method further includes locking position data to the scroll eventwhen the cursor is positioned on an onscreen option of the GUI during afirst selection event. The method additionally includes unlockingposition data from the scroll event during a second selection event.

The invention relates, in another embodiment, to a method of executing amodal change between a cursor control mode and a scroll control mode ina computer system having a display for displaying a graphical userinterface and an input device for supplying position data associatedwith controlling cursor and scroll movements on the graphical userinterface. The cursor control mode allows movements of a cursor to becontrolled on the graphical user interface via the input device and thescroll control mode allows scrolling to be controlled on the graphicaluser interface via the input device. The method includes selecting anonscreen option of the graphical user interface with a computerimplemented action when the input device is in a cursor control mode soas to place the input device in the scroll control mode. The method alsoincludes performing another computer implemented action when the inputdevice is in the scroll control mode so as to place the input deviceback in the cursor control mode.

The invention relates, in another embodiment, to a graphical userinterface (GUI). The GUI includes a graphical image for executing amodal change of an input device when the graphical image is selected,the modal change being configured to switch the input device from acursor control mode for moving a cursor to a scroll control mode forscrolling.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be readily understood by the following detaileddescription in conjunction with the accompanying drawings, wherein likereference numerals designate like structural elements, and in which:

FIG. 1 is a simplified diagram of a display utilizing a graphical userinterface, in accordance with one embodiment of the present invention.

FIG. 2 is a process flow diagram of mode activated scrolling, inaccordance with one embodiment of the present invention.

FIG. 3 is a process flow diagram of modal switching, in accordance withone embodiment of the present invention.

FIGS. 4A-4F are a diagrammatic example of the process flow shown in FIG.3, in accordance with one embodiment of the present invention.

FIG. 5 is a block diagram of an exemplary computer system for carryingout the processing according to the invention.

DETAILED DESCRIPTION

Embodiments of the invention are discussed below with reference to FIGS.1-5. However, those skilled in the art will readily appreciate that thedetailed description given herein with respect to these figures is forexplanatory purposes as the invention extends beyond these limitedembodiments.

The present invention pertains to a computer system having at least adisplay, an input device and a command generator. The display isgenerally configured to display a graphical user interface, i.e., acomputer environment or program that displays, or facilitates thedisplay of, text, graphics and on screen options to a user. By way ofexample, the graphical user interface may be part of an operating system(O/S) of the computer system. The input device, on the other hand, isgenerally configured to supply position data associated with controllingmovements (e.g., cursor, scroll, pan) in the graphical user interface.By way of example, the input device may be a mouse, a trackball, a touchpad, joystick and the like. Furthermore, the command generator isconfigured to supply command data associated with implementing actionsin the graphical user interface (e.g., selecting a file or opening amenu). For example, the command generator may be an input device buttonthat provides a clicking action (e.g., mouse button), a keyboard keysuch as enter or function key, and/or the like.

The computer system is generally configured to provide at least a cursorcontrol mode and a scroll control mode. The cursor control mode allows auser to move a cursor on the GUI via the input device. The scrollcontrol mode allows a user to scroll on the GUI via the input device. Byway of example, scrolling may be used to help perform internet browsing,spreadsheet manipulation, viewing code, computer aided design, and thelike. In either case, the movements are based on positional datasupplied by the input device. The positional data is generally locked ineach mode such that the control is accomplished without holding down abutton. In mice, the positional data is produced via a ball thatmonitors the movement of the mouse along a surface. Alternatively, anoptical sensor may be used. For ease of discussion, the input device asused herein will be directed at the mouse. It should be appreciated,however, that this is not a limitation and that the other devices may beused (e.g., trackball, touch pad, or joystick).

Scrolling generally refers to a method of moving a GUI or portionsthereof up, down, left or right in order to bring more data into view onthe display screen (e.g., list scrolling, window scrolling). Forexample, during scrolling, each new set of data may appear at the top,bottom, left or right of the viewing area of the display screen and allother sets of data may move up, down, or to the side one position. Ifthe viewing area is full, the peripheral set of data moves out of theviewing area while a new set of data enters the viewing area. Up anddown movements are generally referred to as vertical or y axis scrollingand left to right (or side to side) movements are generally referred toas horizontal or x axis scrolling. Although these are the primaryscrolling movements, it should be noted that they are not a limitation.For example, scrolling may also encompass panning (e.g., simultaneousvertical and horizontal scrolling), z axis scrolling such as zoom in andout, 3D scrolling such as x, y and/or z axis rotation and the like. Thescrolling movements are generally based on the movements of the mouse.

The system also gives a user the ability to switch between the cursorcontrol mode (e.g., moving a cursor with a mouse) and the scroll controlmode (e.g., moving the contents of a window up/down or side to side withthe mouse). For example, when a user wants to scroll, the user canswitch between modes such that further movement of the mouse results inscrolling rather than moving a cursor (e.g., tracking).

In one embodiment, switching between modes is implemented by selecting apredetermined area of the GUI. For example, switching may be implementedby moving a GUI object such as a cursor or scroll tab to thepredetermined area via the mouse (e.g., positional data) and selectingthe predetermined area via a clicking action of the primary mouse button(e.g., not a dedicated button). Switching back to the original mode may,in some cases, be implemented by simply generating a second clickingaction. In other cases, switching back may be implemented via a delaytime or a period of inactivity, as for example, 20-30 seconds. Thepredetermined area may be located almost anywhere within the GUI,although it is generally located within the active portion of the GUI,as for example an active window frame. In one implementation, thepredetermined area is presented by the GUI as an onscreen option thatwhen actuated informs the computer system as to which mode to implementwhen the mouse is moved along the surface. As should be appreciated,onscreen options are applications or functions for performing a specifictask. By way of example, the onscreen options may include images such asicons, toolbar items, menu items and the like. In one particularembodiment, the onscreen option is a portion of a window frame containedin a GUI, as for example, the scroll bar or scroll tab.

FIG. 1 is a simplified diagram of a display 10 utilizing a graphicaluser interface 12, in accordance with one embodiment of the presentinvention. The graphical user interface 12 includes a window frame 14.The window frame 14 includes a window or field 16 having contentscontained therein. By way of example, the window 16 may contain text,icons, and the like. The window frame 14 also includes a horizontalscroll bar 18 and a vertical scroll bar 20. Both scroll bars 18, 20 arepositioned adjacent the window 16, but within the window frame 14. Asshown, the horizontal scroll bar 18 is disposed below the window 16, andthe vertical scroll bar 20 is disposed to the right of the window 16.The scroll bars 18, 20 are configured to allow a user to scroll throughthe contents of the window 16. For example, the horizontal scroll barpermits horizontal scrolling while the vertical scroll bar permitsvertical scrolling.

As shown, each of the scroll bars 18, 20 includes a scroll tab 22 thatmoves within the respective scroll bar 18, 20. Movement of the scrolltab 22 within the scroll bar 18, 20 generally initiates scrollingthrough the contents of the window 16. In most cases, the scroll tab 22is moved via a hold and drag function with the mouse. For example, auser typically selects the scroll tab 22 by moving a cursor 24 over thescroll tab 22 and initiating a continuous button click with the mouse.While maintaining the button click, the user then moves the cursor 24via the mouse to move the scroll tab 22 within the scroll bar 18 or 20.

Scrolling may be implemented vertically (up or down) with the verticalscroll tab 22A or horizontally (left or right) with the horizontalscroll tab 22B. For example, the mouse (when in the hold and dragfunction) may be arranged to move the vertical scroll tab 22A and thusthe contents of the window 16 vertically up when moved forward, andvertically down when moved backwards. In addition, the mouse (when inthe hold and drag function) may be arranged to move the horizontalscroll tab 22B and thus the contents of the window 16 horizontally whenmoved from side to side. In the case of vertical scrolling, when a usermoves the scroll tab 22A down, each new set of data appears at thebottom of the window 16 (e.g., viewing area) and all other sets of datamove up one position. If the window 16 is full, the top set of datamoves out of the window 16. Similarly, when a user moves the scroll tab22A up, each new set of data appears at the top of the window 16 and allother sets of data move down one position. If the window 16 is full, thebottom set of data moves out of the window 16. The same can be said forhorizontal scrolling (e.g., side to side rather than up and down).

The GUI 12 also includes one or more predetermined areas 26 thatrepresent regions of the GUI 12 that may be actuated by a user so as toswitch the system (in which the GUI 12 is used) between a cursor controlmode and a scroll control mode. The cursor control mode is configured tolock the movement of the mouse to cursor movements across the GUI. Thescroll control mode is configured to lock the movement of the mouse toscroll tab movements within the scroll bar. The predetermined area 26 isgenerally configured to activate at least one of the different GUImovements (e.g., cursor or scroll) when the cursor or scroll bar ispositioned proximate the predetermined area 26 and during a clickingaction of the mouse. For example, during a clicking action, the systemmay activate cursor control mode when the scroll tab 22 is positionedproximate the predetermined area 26 or it may activate the scrollcontrol mode when the cursor 24 is positioned proximate thepredetermined area 26. Switching back to the original mode may, in somecases, be implemented by simply generating a second clicking action withor without being proximate the predetermined area 26. Switching back mayalso be implemented by a delay time or period of inactivity.

The position of the predetermined area 26 relative to the GUI 12 may bewidely varied. For example, the predetermined area 26 may be positionedalmost anywhere (e.g., top, side, middle, bottom) on the GUI 12 so longas it is accessible to a user during manipulation of the cursor 24 orscroll tab 22. In most cases, they are located within the active area ofthe GUI, as for example, the window frame 16. The number ofpredetermined areas 26 may also be widely varied. That is, although onlyone predetermined area 26 is shown in FIG. 1, it should be noted that aplurality of predetermined areas 26 may be used. The plurality ofpredetermined areas may be arranged to work together or independent ofone another (e.g., separate switches).

In one embodiment, the predetermined areas 26 are on screen optionslocated within the window frame 16. For example, as shown in FIG. 1, thewindow frame 16 may include onscreen options 28 and 30 that are locatedat the ends of the scroll bars 18 and 20, respectively. The onscreenoption 28 is generally associated with the horizontal scroll bar and theonscreen option 30 is generally associated with the vertical scroll bar.In this particular example, when the system is in the cursor controlmode, a horizontal scroll control mode is implemented when thehorizontal onscreen option 28 is selected, and a vertical scroll controlmode is implemented when the vertical onscreen option 30 is selected.That is, the control modes are switched from cursor control to scrollcontrol. Additionally or alternatively, another onscreen option 32 maybe used implement panning rather than scrolling. Panning is generallydefined as simultaneous vertical and horizontal scrolling. In theillustrated embodiment, the panning onscreen option is located oppositethe onscreen option 28, 30 at the ends of the scroll bars 18, 20 in thecorner of the window frame 16.

In another embodiment, the on screen option is built into an alreadyexisting image of the window frame, as for example, a portion of thescroll bar 18, 20 such as the scroll tab 22. In this particular example,when the system is in the cursor control mode, the horizontal scrollcontrol mode is implemented when the horizontal scroll tab 22B isselected, and a vertical scroll control mode is implemented when thevertical scroll tab 22A is selected. That is, the control modes areswitched from cursor control to scroll control. Additionally oralternatively, panning may be implemented by selecting either of thescroll tabs twice in succession (e.g., performing a double clickingaction with the button of the mouse).

In either of the aforementioned embodiments, a visual indication may beused on the GUI to inform the user as to which mode is activated. Forexample, the onscreen option may change its appearance as for exampleits image, color, shape, location, size, and the like when selected.

FIG. 2 is a process flow diagram of mode activated scrolling 50, inaccordance with one embodiment of the present invention. By way ofexample, mode activated scrolling 50 may be implemented on the GUI 12shown in FIG. 1. The process flow generally begins at block 52 where adetermination is made as to the location of the cursor on the GUI duringthe cursor control mode. Again, the cursor control mode is associatedwith moving the cursor across the GUI with a mouse. For example, thecursor control mode may lock the movement of the cursor to the movementof the mouse. The location is generally determined using standardcomputer processing.

Following block 52, the process flow proceeds to block 54 where adetermination is made as to the status of the command generator duringthe cursor control mode. In most cases, the command generator has anidle state and an activated state. By way of example, the activatedstate may be implemented by a clicking action via a button of a mouse.The status is generally determined using standard computer processing.

During blocks 52 and 54, if the cursor is at a predefined location whenthe command generator is activated then the process flow proceeds toblock 56 where the system is switched from the cursor control mode tothe scroll control mode. By way of example, the predefined location maycorrespond to the predetermined area described in FIG. 1. Again, thescroll control mode is associated with scrolling through a GUI. Forexample, the scroll control mode may lock the movement of the scroll tabto the movement of the mouse.

Although not shown, the process flow may include additional or alternateblocks. For example, if the command generator is activated during thescroll control mode then the process flow may proceed from block 56 toanother block where the system is switched from the scroll control modeto the cursor control mode.

FIG. 3 is a process flow diagram of modal switching 100, in accordancewith one embodiment of the present invention. The process flow generallybegins at block 102 where position data is monitored. By way of example,the position data may be produced by an input device such as a mouse.The position data is generally monitored in block 102 so as to implementa cursor event. By way of example, the cursor event may be associatedwith moving a cursor on a display screen.

Following block 102, the process flow proceeds to block 104 wherecommand data is monitored. By way of example, the command data may begenerated by a command generator such as the button of a mouse thatprovides a clicking action. The command data is generally monitored soas to implement a selection event when the command generator isactivated. The selection event may be associated with selecting apredetermined area of the GUI such as an onscreen option.

During the selection event, a determination is made at block 106 as towhere the cursor is located. If the cursor is not located in apredefined location (e.g., predetermined area) of the GUI then theprocess flow proceeds back to the start. If the cursor is located withina predefined location (e.g., predetermined area) of the GUI then theprocess flow proceeds to block 108 where the position data is locked toa scroll event. At the same time, a visual indication of the scroll lockmay be implemented as shown in block 110. By way of example, the visualindication may cause the scroll tab to change colors, size, shape, etc.

Following block 108 the process flow proceeds to block 112 where theposition data is monitored. By way of example, the position data may beproduced by an input device such as a mouse. The position data isgenerally monitored in block 112 so as to implement the scroll event. Byway of example, the scroll event may be associated with moving a scrolltab to scroll through an active window. Alternatively, the scroll eventmay be associated with moving a window directly with mouse movements(i.e., without moving an object of the GUI).

During the scroll event, the process flow proceeds to block 114 wherethe command data is monitored. By way of example, the command data maybe generated by a command generator such as the button of a mouse thatprovides a clicking action. The command data is generally monitored soas to implement a second selection event when the command generator isactivated. The selection event may be associated with selecting apredetermined area of the GUI such as an onscreen option or it may beassociated with any area of the GUI, i.e., the clicking action itself(no predefined location is needed).

During command monitoring, the process flow proceeds to block 116 wherea determination is made as to whether a second selection has occurred.If a second selection has not occurred then the process flow proceedsback to step 102. If a second selection event has occurred then theprocess flow proceeds to block 118 where the position data is unlockedfrom the scroll event. Once unlocked, the process flow proceeds back tothe start of the process flow (e.g., blocks 102/102).

Alternatively or additionally, during block 112 (position datamonitoring associated with scroll events) the process flow may include atime out that deactivates the scroll lock if a scroll event has not beenperformed for a predetermined amount of time, i.e., a period ofinactivity. Once deactivated (or unlocked), the process flow typicallyproceeds back to block 102 (position data monitoring associated withcursor events).

A diagrammatic example of the above process flow is shown in FIGS.4A-4F, in accordance with one embodiment of the present invention. FIGS.4A-4F are diagrams of a window frame 150 shown on a GUI interface. TheGUI interface is generally presented on a display of a computer system.Movements on the GUI, and thus the around the window frame 150 aregenerally controlled via an input device such as a mouse. By way ofexample, the window frame 150 may correspond to the window frame shownin FIG. 1. The window frame may be widely varied. In the illustratedembodiment, the window frame 150 has a window 152, a horizontal scrollbar 154 and a vertical scroll bar 156. The window 152 is configured tocontain a plurality of icons 158. It should be noted, however, that thisis not a limitation and that the contents of the window may varyaccording to the specific needs of the computer system. For example, itmay include text or graphics associated with word processing,spreadsheet, or drafting programs.

FIG. 4A shows the GUI in a cursor control mode where movements of amouse correspond to similar movements of a pointer 160 on the GUI 148,i.e., the position data of the mouse is monitored so as to implementpointer movements. In this particular Figure, the cursor 160 is movedvia the mouse to the vertical scroll tab 162 of the vertical scroll bar156. The movement is shown by dotted line 164.

FIG. 4B shows the GUI in a transitioning state (e.g., from cursorcontrol mode to scroll control mode) where a clicking action of themouse selects the vertical scroll tab 162 of the vertical scroll bar156. As shown, the pointer 160 is positioned directly over the scrolltab 162. For illustration purposes, the clicking action is shown aslines emanating from the pointer 160. Here, the command data from themouse informs, the system to implement a scroll lock.

FIG. 4C shows the GUI in a scroll control mode where movements of themouse correspond to similar movements of the scroll tab 162, i.e., theposition data of the mouse is monitored by the system so as to implementtab movements when the mouse is moved along a surface. As shown, thescroll tab 162 changes color (e.g., from cross hatching to solid black)to indicate to the user that the system is in the scroll control mode,i.e., the vertical scroll tab is active. Furthermore, the pointerdisappears. As should be appreciated, the color change provides visualstimulus to the user that informs the user that movements of the mouseare used for scrolling rather than moving a cursor.

FIG. 4D shows the GUI in the scroll control mode during scrollingmovements, i.e., the mouse is moved backwards and the positional datainstructs the scroll tab 162 to move down. The scrolling movement isshown by dotted line 168. As shown, the visual indication of the scrolltab remains while the scroll tab 162 is moved. Furthermore, the contentsof the window 152 are moved in lieu of the scroll tab movements 168(e.g., scrolling). For example, as shown, the first icon 158A is movedoff of the window 152 at the top of the window 152 while a third icon158C is brought into the window 152 at the bottom of the window 152.

FIG. 4E shows the GUI in a transitioning state where a clicking actionof the mouse unlocks the scroll lock. For illustration purposes, theclicking action is shown as lines emanating from the pointer 160. Here,the command data from the mouse informs, the system to unlock the scrolllock. As shown, the scroll tab 162 has reverted back to its originalcolor and the pointer 160 has reappeared.

FIG. 4F shows the GUI in a cursor control mode where movements of amouse correspond to similar movements of the pointer 160. In thisparticular Figure, the pointer 160 is moved via the mouse from thevertical scroll tab 162 of the vertical scroll bar 158 to the third icon158C contained in the window 152. The movement is shown by dotted line170. At this point, the user may select the third icon 158C via aclicking action or perform some other task in the GUI 148.

FIG. 5 is a block diagram of an exemplary computer system 200 forcarrying out the processing according to the invention. The computersystem 200 includes a digital computer 202, a display screen (ormonitor) 204, a printer 206, a floppy disk drive 208, a hard disk drive210, media bay(s) 212, a keyboard 214 and an input device 215. Thedigital computer 202 includes a microprocessor 216, a memory bus 218,random access memory (RAM) 220, read only memory (ROM) 222, a peripheralbus 224, and a keyboard controller 226. The digital computer 202 can bea personal computer, a workstation computer, or some other type ofcomputer.

The microprocessor 216 is a general purpose digital processor whichcontrols the operation of the computer system 200. The microprocessor216 can be a single-chip processor or can be implemented with multiplecomponents. Using instructions retrieved from memory, the microprocessor216 controls the reception and manipulation of input data and the outputand display of data on output devices. According to the invention, asdescribed above, some particular functions of microprocessor 216 is toprovide and display a GUI on the display 204, and to implement switch orlock processing.

The memory bus 218 is used by the microprocessor 216 to access the RAM220 and the ROM 222. The RAM 220 is used by the microprocessor 216 as ageneral storage area and as scratch-pad memory, and can also be used tostore input data and processed data. The RAM 220 also preferably storesthe various data structures illustrated in the previous Figures. The ROM222 can be used to store instructions or program code followed by themicroprocessor 216 as well as other data.

The peripheral bus 224 is used to access the input, output, and storagedevices used by the digital computer 202. In the described embodiment,these devices include the display screen 204, the printer device 206,the floppy disk drive 208, the hard disk drive 210, and the media bay(s)212. The keyboard controller 226 is used to receive input from thekeyboard 214 and send decoded symbols for each pressed key to themicroprocessor 216 over bus 228. Alternatively, the keyboard may beconnected to the peripheral bus 224.

The display screen 204 is an output device that displays images of dataprovided by the microprocessor 216 via the peripheral bus 224 orprovided by other components in the computer system 200. The printerdevice 206 when operating as a printer provides an image on a sheet ofpaper or a similar surface. Other output devices such as a plotter,typesetter, etc. can be used in place of, or in addition to, the printerdevice 206.

The floppy disk drive 208 and the hard disk drive 210 can be used tostore various types of data. The floppy disk drive 208 facilitatestransporting such data to other computer systems, and hard disk drive210 permits fast access to large amounts of stored data.

The microprocessor 216 together with an operating system operate toexecute computer code and produce and use data. The computer code anddata may reside on the RAM 220, the ROM 222, or the hard disk drive 220.The computer code and data could also reside on a removable programmedium and loaded or installed onto the computer system 200 when needed.Removable program mediums include, for example, CD-ROM, PC-CARD, floppydisk, magnetic tape, and a network component.

The one or more media bays (expansion bays) 212 are used to receivemedia bay devices (expansion bay devices) to provide greater resourcesto the computer system. As examples, the types of devices include afloppy drive, a hard drive, a CD-ROM drive, a DVD drive, or a battery.The media bays are accessible from external to the computer system sothat media bay devices can be easily be inserted into the media bays orremoved from the media bays. The removability of the media bay devicesallows a few media bays to support a variety of different types ofdevices in a flexible manner.

The keyboard 214 is used by a user to input commands and otherinstructions to the computer system 200. For example, the keyboard 214,which includes a plurality of keys 213, may allow a user of the computersystem 200 to enter alphanumeric data. In addition, the keyboard mayinclude a command generator (in the form of a key) for executing taskssuch as GUI selections.

The input devices 215 are used by a user to manipulate movements on adisplay screen of a general-purpose computer, i.e., the input devicesmay be used to move a cursor or pointer or to implement a scrollingfunction. By way of example, the input devices may take the form of amouse, a track ball, a touch pad, a stylus, a tablet and the like. Theinput devices may also allow a user to make selections via a commandgenerator 217 such as a button.

The advantages of the invention are numerous. Different embodiments orimplementations may have one or more of the following advantages. Oneadvantage of the invention is that mode switching may be implementedusing any mouse including a single button mouse. That is, the inventioneliminates the need for a dedicated scroll button. Another advantage ofthe invention is that scrolling may be implemented in an ergonomicmanner, i.e., without continuously holding down a button.

While this invention has been described in terms of several preferredembodiments, there are alterations, permutations, and equivalents, whichfall within the scope of this invention. For example, although thescroll control mode has been described in terms of a scroll tab lock, itshould be noted that this is not a limitation. That is, the scrollingcontrol mode may correspond to other types of scrolling features(without using the scroll tabs). It should also be noted that there aremany alternative ways of implementing the methods and apparatuses of thepresent invention. It is therefore intended that the following appendedclaims be interpreted as including all such alterations, permutations,and equivalents as fall within the true spirit and scope of the presentinvention.

1. A method for scrolling within a Graphical User Interface (GUI) thatincludes a window, the method comprising: in a cursor control mode,moving a cursor within the GUI in response to positional data receivedfrom a cursor control device; receiving a clicking action from a buttonof the cursor control device in response to a user of the GUI clickingthe button, the clicking action comprising a button press event and abutton release event; entering a scroll control mode in response to thereceived clicking action; determining that a time period of inactivityhas elapsed during which there was no activity by the cursor controldevice, such that no horizontal change and no vertical change in thereceived positional data and no clicking actions are received from thecursor control device during the inactive time period; and returning tothe cursor control mode from the scroll control mode in response to thedetermination that the time period of inactivity has elapsed.
 2. Themethod of claim 1, wherein the scroll control mode allows a user to movea scroll tab of a scroll bar so as to scroll through the content of awindow displayed on the GUI.
 3. The method of claim 1, wherein thecursor control device comprises a mouse, and wherein the positional datareceived from the mouse corresponds with movements of the mouse inrelation to a surface upon with the mouse is in contact, such that themouse is not being moved when there is no change in the receivedpositional data.
 4. The method of claim 3, wherein the received clickingaction is performed using a primary button of the mouse.
 5. The methodof claim 4, wherein the primary button of the mouse is not dedicated toscrolling functionality.
 6. The method of claim 1, wherein the cursorcontrol device comprises a touch pad, and wherein the positional datareceived from the touch pad corresponds with movements of a finger orstylus over the surface of the touch pad, such that the finger or stylusis not being moved when there is no change in the received positionaldata.
 7. The method of claim 1, wherein the window includes a fieldhaving a plurality of predetermined areas surrounded by a window frameseparate from the field, the separate window frame including a verticalscroll bar having a vertical scroll tab and a horizontal scroll barhaving a horizontal scroll tab.
 8. The method of claim 7, wherein saidentering step is performed in response to determining that the clickingaction was received when the cursor was positioned within one of theplurality of predetermined areas in the field.
 9. The method of claim 1,wherein scrolling is based only on positional data received from thecursor control device, and wherein the contents of the window do notscroll when there is no change in the received positional data.
 10. AGraphical User Interface (GUI) comprising: a window adapted to displaywindow contents; a cursor control mode, during which a user can move acursor within the GUI in response to positional data received from acursor control device controlled by the user, wherein the movement ofthe cursor within the GUI is directly based on the positional data andthe cursor does not move when the there is no change in the receivedpositional data; and a scroll control mode that is entered when the userperforms a clicking action comprising a button press and a buttonrelease event with a button of the cursor control device, wherein in thescroll control mode, scrolling of the contents of the window is directlybased only on positional data received from the cursor control device inthe direction of entered scroll control mode, and the contents of thewindow do not scroll when there is no change in the received positionaldata; and an inactivity timeout interval comprising a threshold timeperiod, that if elapsed without any activity received from the cursorcontrol device including horizontal change or vertical change in thereceived positional data and clicking actions, causes the GUI to returnto the cursor control mode from the scroll control mode in response tothe lapsing of the inactivity timeout interval.
 11. The GUI of claim 10,wherein the GUI includes a window frame surrounding the window, thewindow frame having a horizontal scroll bar and a vertical scroll barpositioned adjacent the window, the horizontal scroll bar being disposedbelow the window, and the vertical scroll bar being disposed to the sideof the window, each of the scroll bars being configured to allow a userto scroll through the contents of the window.
 12. The GUI of claim 10,wherein the GUI is configured to change the appearance of the windowcontents in order to visually alert a user that a modal change has beenimplemented.
 13. The GUI of claim 10, wherein the cursor control devicecomprises a mouse, and wherein the positional data received from themouse corresponds with movements of the mouse, such that the mouse isnot being moved when there is no change in the received positional data.14. The GUI of claim 13, wherein the clicking action is performed usinga primary button of the mouse, and wherein the primary button of themouse is not dedicated to scrolling functionality.
 15. The GUI of claim13, wherein the cursor control device comprises a touch pad, and whereinthe positional data received from the touch pad corresponds withmovements of a finger or stylus over the surface of the touch pad, suchthat the finger or stylus is not being moved when there is no change inthe received positional data.
 16. A method of executing a modal changebetween a cursor control mode and a scroll control mode in a computersystem having a display adapted to provide a graphical user interfaceand an input device adapted to supply positional data associated withcontrolling cursor and scroll movements on the graphical user interface,the cursor control mode allowing movements of a cursor to be controlledon the graphical user interface via the input device, and the scrollcontrol mode allowing scrolling to be controlled on the graphical userinterface via the input device, the method comprising: initiating afirst computer implemented action when the input device is in a cursorcontrol mode so as to place the input device in the scroll control mode,wherein the first computer implemented action is initiated in responseto a user clicking a button, the clicking comprising a button pressevent and a button release event; and performing a second computerimplemented action when the input device is in the scroll control modeso as to place the input device back in the cursor control mode.
 17. Themethod of claim 16, wherein the input device comprises a mouse, andwherein the positional data received from the mouse corresponds withmovements of the mouse, such that the mouse is not being moved whenthere is no change in the received positional data.
 18. The method ofclaim 17, wherein the clicking action is performed using a primarybutton of the mouse, and wherein the primary button of the mouse is notdedicated to scrolling functionality.
 19. The method of claim 16,wherein the input device comprises a touch pad, and wherein thepositional data received from the touch pad corresponds with movementsof a finger or stylus over the surface of the touch pad, such that thefinger or stylus is not being moved when there is no change in thereceived positional data.
 20. The method of claim 16, wherein the secondcomputer implemented action is initiated in response to a determinationthat a time period of inactivity has elapsed during which there was noactivity by the input device, such that no horizontal change and novertical change in the received positional data and no clicking actionsare received from the input device during the inactive time period. 21.A removable program medium having stored thereon data representinginstructions that, when executed by a processor, cause the processor toperform operations comprising: operating a Graphical User Interface(GUI) that includes a window; moving a cursor within the GUI in responseto positional data received from a cursor control device, wherein themovement of the cursor within the GUI is directly based on thepositional data and the cursor does not move when the there is no changein the received positional data; receiving a clicking action from abutton of the cursor control device in response to a user of the GUIclicking the button, the clicking action comprising a button press evenand a button release event; entering a scroll control mode in responseto the received clicking action; determining that a time period ofinactivity has elapsed during which there was no activity by the cursorcontrol device; and returning to the cursor control mode from the scrollcontrol mode in response to the determination that the time period ofinactivity has elapsed.
 22. The removable program medium of claim 21,wherein the input device comprises a mouse, and wherein the positionaldata received from the mouse corresponds with movements of the mouse,such that the mouse is not being moved when there is no change in thereceived positional data.
 23. The removable program medium of claim 22,wherein the clicking action is performed using a primary button of themouse, and wherein the primary button of the mouse is not dedicated toscrolling functionality.
 24. The removable program medium of claim 21,wherein the input device comprises a touch pad, and wherein thepositional data received from the touch pad corresponds with movementsof a finger or stylus over the surface of the touch pad, such that thefinger or stylus is not being moved when there is no change in thereceived positional data.